gdk: Unvfuncify gdk_display_manager_open_display()
authorBenjamin Otte <otte@redhat.com>
Fri, 19 Apr 2013 20:17:17 +0000 (16:17 -0400)
committerBenjamin Otte <otte@redhat.com>
Fri, 19 Apr 2013 20:23:43 +0000 (16:23 -0400)
This looks like a pretty stupid patch, but it's only a step towards the
ultimate end goal: Get rid of all the displaymanagers.

gdk/broadway/gdkdisplaymanager-broadway.c
gdk/gdkdisplaymanager.c
gdk/gdkdisplaymanagerprivate.h
gdk/quartz/gdkdisplaymanager-quartz.c
gdk/wayland/gdkdisplaymanager-wayland.c
gdk/win32/gdkdisplaymanager-win32.c
gdk/x11/gdkdisplaymanager-x11.c

index 2ed5b965132ebd7b1b35c459fbfaefcaf445e216..66e4717ef1eb0edf8d3c493e2543d20d7f38e5d6 100644 (file)
@@ -81,13 +81,6 @@ g_initable_iface_init (GInitableIface *iface)
   iface->init = gdk_broadway_display_manager_initable_init;
 }
 
-static GdkDisplay *
-gdk_broadway_display_manager_open_display (GdkDisplayManager *manager,
-                                         const gchar       *name)
-{
-  return _gdk_broadway_display_open (name);
-}
-
 static void
 gdk_broadway_display_manager_init (GdkBroadwayDisplayManager *manager)
 {
@@ -105,9 +98,6 @@ static void
 gdk_broadway_display_manager_class_init (GdkBroadwayDisplayManagerClass *class)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (class);
-  GdkDisplayManagerClass *manager_class = GDK_DISPLAY_MANAGER_CLASS (class);
 
   object_class->finalize = gdk_broadway_display_manager_finalize;
-
-  manager_class->open_display = gdk_broadway_display_manager_open_display;
 }
index 063aff2e5862022a3fd7d0487c580d0357b0c166..47b3760a4b8dc67ee71936708d7320b22516963a 100644 (file)
@@ -34,6 +34,7 @@
 
 #ifdef GDK_WINDOWING_X11
 #include "x11/gdkx.h"
+#include "x11/gdkprivate-x11.h"
 #endif
 
 #ifdef GDK_WINDOWING_QUARTZ
  * "generic" GDK source code.
  */
 #include "quartz/gdkquartzdisplaymanager.h"
+#include "quartz/gdkprivate-quartz.h"
 #endif
 
 #ifdef GDK_WINDOWING_BROADWAY
 #include "broadway/gdkbroadwaydisplaymanager.h"
+#include "broadway/gdkprivate-broadway.h"
 #endif
 
 #ifdef GDK_WINDOWING_WIN32
 #include "win32/gdkwin32.h"
+#include "win32/gdkprivate-win32.h"
 #endif
 
 #ifdef GDK_WINDOWING_WAYLAND
 #include "wayland/gdkwayland.h"
+#include "wayland/gdkprivate-wayland.h"
 #endif
 
 /**
@@ -301,23 +306,24 @@ typedef struct _GdkBackend GdkBackend;
 struct _GdkBackend {
   const char *name;
   GType (* get_backend_type) (void);
+  GdkDisplay * (* open_display) (const char *name);
 };
 
 GdkBackend gdk_backends[] = {
 #ifdef GDK_WINDOWING_QUARTZ
-  { "quartz",   gdk_quartz_display_manager_get_type },
+  { "quartz",   gdk_quartz_display_manager_get_type,    _gdk_quartz_display_open },
 #endif
 #ifdef GDK_WINDOWING_WIN32
-  { "win32",    gdk_quartz_display_manager_get_type },
+  { "win32",    gdk_win32_display_manager_get_type,     _gdk_win32_display_open },
 #endif
 #ifdef GDK_WINDOWING_X11
-  { "x11",      gdk_x11_display_manager_get_type },
+  { "x11",      gdk_x11_display_manager_get_type,       _gdk_x11_display_open },
 #endif
 #ifdef GDK_WINDOWING_WAYLAND
-  { "wayland",   gdk_wayland_display_manager_get_type },
+  { "wayland",  gdk_wayland_display_manager_get_type,   _gdk_wayland_display_open },
 #endif
 #ifdef GDK_WINDOWING_BROADWAY
-  { "broadway",   gdk_broadway_display_manager_get_type },
+  { "broadway", gdk_broadway_display_manager_get_type,  _gdk_broadway_display_open },
 #endif
   /* NULL-terminating this array so we can use commas above */
   { NULL, NULL }
@@ -494,7 +500,19 @@ GdkDisplay *
 gdk_display_manager_open_display (GdkDisplayManager *manager,
                                   const gchar       *name)
 {
-  return GDK_DISPLAY_MANAGER_GET_CLASS (manager)->open_display (manager, name);
+  guint i;
+
+  for (i = 0; gdk_backends[i].name != NULL; i++)
+    {
+      if (G_OBJECT_TYPE (manager) == gdk_backends[i].get_backend_type ())
+        {
+          return gdk_backends[i].open_display (name);
+        }
+    }
+
+  g_assert_not_reached ();
+
+  return NULL;
 }
 
 void
index 0f6d4b23e175940029760c35c543de862d720577..5ec3f01cb78ac70f3092a579dc3627297b69e7f4 100644 (file)
@@ -41,9 +41,6 @@ struct _GdkDisplayManagerClass
 {
   GObjectClass parent_class;
 
-  GdkDisplay * (*open_display)        (GdkDisplayManager *manager,
-                                       const gchar       *name);
-
   /* signals */
   void         (*display_opened)      (GdkDisplayManager *manager,
                                        GdkDisplay        *display);
index 4756cd04284ecd8ce2a91fc34c5b8f6b2e348e92..f278ab35221b4a2e81e7f14f502a7b4f8b751333 100644 (file)
@@ -40,13 +40,6 @@ struct _GdkQuartzDisplayManager
 
 G_DEFINE_TYPE (GdkQuartzDisplayManager, gdk_quartz_display_manager, GDK_TYPE_DISPLAY_MANAGER)
 
-static GdkDisplay *
-gdk_quartz_display_manager_open_display (GdkDisplayManager *manager,
-                                         const gchar       *name)
-{
-  return _gdk_quartz_display_open (name);
-}
-
 static void
 gdk_quartz_display_manager_init (GdkQuartzDisplayManager *manager)
 {
@@ -79,7 +72,6 @@ gdk_quartz_display_manager_class_init (GdkQuartzDisplayManagerClass *class)
 
   object_class->finalize = gdk_quartz_display_manager_finalize;
 
-  manager_class->open_display = gdk_quartz_display_manager_open_display;
   manager_class->atom_intern = _gdk_quartz_display_manager_atom_intern;
   manager_class->get_atom_name = _gdk_quartz_display_manager_get_atom_name;
 }
index 902ac164b02fb1a2be719c8b111c20c06bff5bb9..32b201810c1bbfdca806ed50ad876a3238ba69b9 100644 (file)
@@ -88,22 +88,12 @@ gdk_wayland_display_manager_finalize (GObject *object)
   G_OBJECT_CLASS (gdk_wayland_display_manager_parent_class)->finalize (object);
 }
 
-static GdkDisplay *
-gdk_wayland_display_manager_open_display (GdkDisplayManager *manager,
-                                         const gchar       *name)
-{
-  return _gdk_wayland_display_open (name);
-}
-
 static void
 gdk_wayland_display_manager_class_init (GdkWaylandDisplayManagerClass *class)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (class);
-  GdkDisplayManagerClass *manager_class = GDK_DISPLAY_MANAGER_CLASS (class);
 
   object_class->finalize = gdk_wayland_display_manager_finalize;
-
-  manager_class->open_display = gdk_wayland_display_manager_open_display;
 }
 
 static void
index 8907dec16445be729a9011fbaf2b1849bf7432c0..0e5f71168cb16092a455d0ae8c0d09c4ae5a17dd 100644 (file)
@@ -38,13 +38,6 @@ struct _GdkWin32DisplayManagerClass
 
 G_DEFINE_TYPE (GdkWin32DisplayManager, gdk_win32_display_manager, GDK_TYPE_DISPLAY_MANAGER)
 
-static GdkDisplay *
-gdk_win32_display_manager_open_display (GdkDisplayManager *manager,
-                                         const gchar       *name)
-{
-  return _gdk_win32_display_open (name);
-}
-
 static void
 gdk_win32_display_manager_init (GdkWin32DisplayManager *manager)
 {
@@ -69,11 +62,9 @@ static void
 gdk_win32_display_manager_class_init (GdkWin32DisplayManagerClass *class)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (class);
-  GdkDisplayManagerClass *manager_class = GDK_DISPLAY_MANAGER_CLASS (class);
 
   object_class->finalize = gdk_win32_display_manager_finalize;
 
-  manager_class->open_display = gdk_win32_display_manager_open_display;
 #if 0
   manager_class->atom_intern = _gdk_win32_display_manager_atom_intern;
   manager_class->get_atom_name = _gdk_win32_display_manager_get_atom_name;
index 59f270b10ee98137640bd2c0a3c190c7f1884529..5393cadc544dd86ed8b353047d3fae91cd2d83c2 100644 (file)
@@ -72,13 +72,6 @@ g_initable_iface_init (GInitableIface *iface)
 }
 
 
-static GdkDisplay *
-gdk_x11_display_manager_open_display (GdkDisplayManager *manager,
-                                      const gchar       *name)
-{
-  return _gdk_x11_display_open (name);
-}
-
 static void
 gdk_x11_display_manager_init (GdkX11DisplayManager *manager)
 {
@@ -97,9 +90,6 @@ static void
 gdk_x11_display_manager_class_init (GdkX11DisplayManagerClass *class)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (class);
-  GdkDisplayManagerClass *manager_class = GDK_DISPLAY_MANAGER_CLASS (class);
 
   object_class->finalize = gdk_x11_display_manager_finalize;
-
-  manager_class->open_display = gdk_x11_display_manager_open_display;
 }